package com.zliblike_platform.mapper;

import com.zliblike_platform.entity.CommentLike;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 评论点赞Mapper接口
 */
@Mapper
public interface CommentLikeMapper {
    
    /**
     * 新增点赞记录
     * @param commentLike 点赞信息
     * @return 影响行数
     */
    int insert(CommentLike commentLike);
    
    /**
     * 删除点赞记录
     * @param commentId 评论ID
     * @param userId 用户ID
     * @return 影响行数
     */
    int delete(@Param("commentId") Long commentId, @Param("userId") Long userId);
    
    /**
     * 查询点赞记录
     * @param commentId 评论ID
     * @param userId 用户ID
     * @return 点赞记录
     */
    CommentLike selectByCommentIdAndUserId(@Param("commentId") Long commentId, @Param("userId") Long userId);
    
    /**
     * 查询用户是否点赞了某些评论
     * @param commentIds 评论ID列表
     * @param userId 用户ID
     * @return 用户点赞的评论ID列表
     */
    List<Long> selectLikedCommentIds(@Param("commentIds") List<Long> commentIds, @Param("userId") Long userId);
    
    /**
     * 统计用户点赞数量
     * @param userId 用户ID
     * @return 点赞数量
     */
    int countByUserId(@Param("userId") Long userId);
} 